![]() |
New! Play Games and Compete with others in the Arcade! |
|
|||||||
![]() |
|
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
#1 |
|
Registered User
Join Date: Jun 2002
Posts: 274
|
New doc: Advanced code making tips for Genesis
After working on this thing for several months, I've finally written enough to release it. I've still got a lot to learn about Sega Genesis assembly language (M68k), so expect updates in the future.
The doc is too big to fit here, so I'll include a link, and a small portion of the doc so you can see if it's something you might be interested in. Tony. Here's the link for the entire doc: http://www.angelfire.com/games2/cod...edGenGGtips.txt Here's a small portion of the doc... NOTE: The "Hard Wired" ROM mentioned below is a public domain ROM. Advanced Game Genie code making tips for Sega Genesis... Version 0.2 Nov. 21, 2003 =========================================== To make a "start with more lives" code (or any type of start with more code), find the RAM address for lives (or whatever), then search ROM for: 11FC 00 nn aa aa. nn = number you start with of whatever (in hex). aa aa = RAM address. Example: Sonic 1 (or Sonic 3)... You start with 3 lives, and the RAM address for lives is FE12, so ROM search would be: 11FC 0003 FE12. Change the "03" to a higher value to start with more lives. This method seems to work with many games. ------------------------------------------ If the item you want to make a code for can have 256 or more, then search for: 33FC nn nn 00FF aa aa. nn nn = number you start with of whatever (in hex). aa aa = RAM address. Example... Hard Wired: (you can get this ROM from www.zophar.net) You start with 9999 cannon bullets, and RAM address for bullets is 01A4. (9999 = 270F in hex.) So ROM search would be: 33FC 270F 00FF 01A4. Change "270F" to a higher or lower number to let you start with more or less bullets. 33FC is a MOVE instruction (2 bytes), so it is used on items that have amounts from 0 to 65,535. Some games (ie. Desert Strike) will use the 33FC instruction on items that have very low numbers. In the Desert Strike ROM, the coding that loads the number of lives (03) looks like this: 33FC 0003 00FF 100E. So keep that in mind if you can't find a match using the "11FC" method above. ======================================= Infinite Lives, or things that are subtracted by one at a time (inf ammo, etc). Find the RAM address for lives, then search ROM for: 5338 aa aa. aa aa = RAM address. Then change the 5338 to 60?? for infinite amount. Example: Infinite lives for Sonic 1... RAM address for lives is FE12. So ROM search would be: 5338 FE12. Change the 5338 to 6032 for inf lives. 5338 is a SUB (subtract) instruction. 60?? is a BRA (branch) instruction. Another example: Batman Returns... RAM address for lives is FE32, So ROM search would be 5338 FE32. Change the 5338 to 600A. Hex code is 00AA82:600A Game Genie code is BLZA-AA6C = infinite lives. (I made this code.) ------------------------------------- If the amount of the item you want an infinite code for can be over 255, then try this... Search ROM for: 5379 00FF aa aa. aa aa = RAM address. Change the 5379 to 60xx. Example... Hard Wired: (you can get this ROM from www.zophar.net) RAM address for cannon ammo is 01A4, so ROM search would be: 5379 00FF 01A4. I changed the "5379" to 6004 and got infinite ammo! Here's the hex code and Game Genie code: 046BA4:6004 = AVZT-JA7E Infinite cannon ammo. (I made this code.) Also try this method if the "5338" method doesn't work. ========================================== Galoob code for Sonic 1: Don't lose rings when hit AWRT-AA5W = 009D72:6004 This is what it looks like in the ROM: 31FC 0000 FE20 FE20 is the RAM address for rings. The Galoob code changes the 31FC to 6004, thus preventing the game from setting your rings to 0000 when you're hit. By making a Game Genie code to change the "0000", you can get as many rings as you want after getting hit (see example code I made below). In short, the code above does this: 31FC loads 0000 into RAM address FE20 when you're hit. Here's a sample code I made for Sonic 1... GLRT-AADY = 009D74:0032 Ring count goes to 50 after getting hit. Change the 32 in the hex code to whatever number of rings you want after you get hit. ======================================= Remember, this is only a small part of the doc, so if something doesn't make sense, try reading the entire doc (on my web site). Tony. |
|
|
|
|
#2 |
|
Registered User
|
Thank you, Tony. It's very useful doc.
But I still have a question: how to make "invincibility", "low gravity" and some other effects? I made "low gravity" GG for Blades of Vengeance (Sega Genesis), but I was working for 4 hours. (It was before releasing this document).
__________________
Thanks for attention. Chemist. |
|
|
|
|
#3 |
|
Registered User
Join Date: Jun 2002
Posts: 274
|
I'm almost finished with the next version of the doc (ver. 0.3) and it has two new sections that explain how to make "invincibility" type codes.
I will put it on my web site in a week or two. Tony. |
|
|